
package com.hlkj.pay.vo.ad.resp;

import java.math.BigDecimal;

import com.hlkj.pay.vo.BaseResp;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * ad交易订单表
 * 
 * @TableName t_ad_order
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AdPayOrderResp extends BaseResp {

    /**
     * 平台订单号
     */
    @Schema(description = "平台订单号")
    private String payOrderNo;

    /**
     * 商户订单号
     */
    @Schema(description = "商户订单号")
    private String mchOrderNo;

    /**
     * 机构订单号
     */
    @Schema(description = "机构订单号")
    private String insOrderNo;

    /**
     * 渠道订单号
     */
    @Schema(description = "渠道订单号")
    private String channelOrderNo;

    /**
     * 渠道附加订单号
     */
    @Schema(description = "渠道附加订单号")
    private String channelOrderId;

    /**
     * 商户通道编码
     */
    @Schema(description ="商户通道编码")
    private String mchChannelCode;

    /**
     * 第三方返回的信息
     */
    @Schema(description = "第三方返回的信息")
    private String remark;

    /**
     * 广告id
     */
    @Schema(description = "广告id")
    private Long adId;

    /**
     * 支付类型
     */
    @Schema(description = "支付类型 1 微信 2 支付宝 3 京东白条")
    private Integer payType;

    /**
     * 支付方式
     */
    @Schema(description = "白条期数")
    private Integer paySubType;

    /**
     * 订单金额
     */
    @Schema(description = "订单金额")
    private BigDecimal amount;

    /**
     * 客户端IP
     */
    @Schema(description = "客户端IP")
    private String clientIp;

    /**
     * 商品标题
     */
    @Schema(description = "商品标题")
    private String subject;

    /**
     * 商品描述信息
     */
    @Schema(description = "商品描述信息")
    private String description;

    /**
     * 订单状态，订单状态，1=初始化，2=支付中，3=支付成功，4=已撤销，5=订单关闭 6=订单关闭中 7=支付失败
     */
    @Schema(description = "订单状态，订单状态，1=初始化，2=支付中，3=支付成功，4=已撤销，5=订单关闭 6=订单关闭中 7=支付失败")
    private Integer state;

    /**
     * 订单失效时间
     */
    @Schema(description = "订单失效时间")
    private Long expiredTime;

    /**
     * 订单成功时间
     */
    @Schema(description = "订单成功时间")
    private Long successTime;

    /**
     * 商户商户号
     */
    @Schema(description = "商户商户号")
    private String sn;

    /**
     * 商户商户号
     */
    @Schema(description = "商户商户号")
    private String appId;

    /**
     * 手机号
     */
    @Schema(description = "手机号")
    private String phone;

    /**
     * 是否有退款，1 未退款 2 退款中 3 部分退款 4 退款完成
     */
    @Schema(description = "是否有退款，1 未退款 2 退款中 3 部分退款 4 退款完成")
    private Integer refundStatus;

    /**
     * 总退款金额
     */
    @Schema(description = "总退款金额")
    private BigDecimal refundAmount;

    /**
     * 回传状态 0 未回传 1 已回传
     */
    @Schema(description = "回传状态 0 未回传 1 已回传")
    private Integer callStatus;

    /**
     * 订单来源 1 H5 2 PC
     */
    @Schema(description = "订单来源 1 H5 2 PC")
    private Integer orderSource;

    /**
     * 订单支付金额
     */
    @Schema(description = "订单支付金额")
    private BigDecimal payAmount;
    
    /**
     * 广告id
     */
    @Schema(description = "广告名称")
    private String name;
    /**
     * 广告id
     */
    @Schema(description = "广告媒介名称")
    private String mediaName;
    /**
     * 1:5分钟 2:1 小时
     */
    @Schema(description = "类型 1 权益卡")
    private Integer adType;
    @Schema(description = "支付数据类型，pay_url-支付链接，data-数据体，none-空支付参数")
    private String payDataType;
    
    @Schema(description = "跳转支付数据")
    private String payInfo;

    @Schema(description = "tuiId")
    private String tuiId;
}
